package token

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"savor_gin/controllers"
	"savor_gin/errorType"
	"savor_gin/utils/token"
)

func AuthMiddleware() gin.HandlerFunc {
	return func(c *gin.Context) {
		fmt.Println("Request URL:", c.Request.URL)
		context, err := token.ValidateToken(c)
		if err != nil {
			fmt.Println(err)
			controllers.SendResp(c, errorType.ParseTokenError, context)
			c.Abort()
			return
		}
		c.Set("contextData", context)
		c.Next()
		fmt.Println("Response Status:", c.Writer.Status())
	}
}

// 只要是HandlerFunc类型的函数都可以作为中间件

func AuthToken(c *gin.Context) {
	// 在请求之前打印日志
	fmt.Println("Request URL:", c.Request.URL)

	// 继续执行后续的处理函数
	c.Next()
}
